This invention relates to memory technologies generally and particularly to a paging policy in a memory system.
As computer applications become increasingly complex, they also rely heavily on the efficient utilization of fast memory subsystems. Dynamic Random Access Memory (hereinafter DRAM) is one such memory commonly used in computer systems. DRAM is logically organized into xe2x80x9cpagesxe2x80x9d, where a typical page covers between 1 kbytes and 64 kbytes of memory. A page is either in an xe2x80x9copenxe2x80x9d or xe2x80x9cclosedxe2x80x9d state. When a page is xe2x80x9copenxe2x80x9d, a system memory controller has instructed a memory device to make its memory information contained in that page immediately available to future commands. On the other hand, when a page is xe2x80x9cclosedxe2x80x9d, the information is only available after the memory controller has instructed the DRAM to open the page.
In addition, the memory subsystem is often divided into regions, or banks, accessible through a single xe2x80x9cpage windowxe2x80x9d. Each of these banks may contain many times the number of bytes that are available through the single page window. For example, a DRAM device with a 1 kbyte page window might have banks that are 512 kbytes each. Thus, applying the aforementioned xe2x80x9copenxe2x80x9d rules to this DRAM device, the device only has 1/512 of its individual bank available for immediate access at any given time. In order to further improve data access to and from the device, a DRAM memory controller""s xe2x80x9cpaging policyxe2x80x9d attempts to effectively manage which pages to keep open and which pages to proactively close.
Traditionally, paging polices are simple. Often pages are left open until either a xe2x80x9cbank conflictxe2x80x9d occurs or the DRAM memory controller becomes unable to track a large number of open pages. In other cases, pages are closed immediately after their data are accessed. This type of paging policy results in no immediate accesses to data but a high probability of avoiding time-consuming bank conflicts. Such a paging policy also allows for faster access within the same page.
However, due to the dynamic nature of user behavior and computer applications, determining in advance the best paging policy for a given system is often impractical. In such situations, in order to improve system performance, a method and apparatus is needed to create more than one paging policy and to dynamically switch between them.
A method and apparatus of dynamically adjusting a memory system""s existing paging policy is disclosed. In one embodiment, the method for dynamically adjusting the paging policy generates a select signal according to at least one input signal and the existing paging policy to the memory system and proceeds to modify the existing paging policy basing on the generated select signal.